/*
 * 文 件    名:  AdPromotionServiceProvider.java
 * 创建日期:  2012-10-25下午5:21:17
 * 版          权:  Epro Technologies Co., Ltd. Copyright 2011-2012,  All rights reserved
 * 作          者:  tj072
 */
package com.weipu.common.facade;

import java.util.ArrayList;

import com.weipu.common.facade.exception.DxException;
import com.weipu.common.facade.model.ActiveModel;
import com.weipu.common.facade.model.BannerModel;
import com.weipu.common.facade.model.CBModel;
import com.weipu.common.facade.model.NewsCornerModel;
import com.weipu.common.facade.model.ProductModel;
import com.weipu.common.facade.model.ProductResultModel;
import com.weipu.common.facade.model.SearchModel;

/** 
 * @Description 广告服务提供者
 * @version [版本号, 2012-10-25]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 * 
 * @author yw66009
 */
public interface AdPromotionServiceProvider
{
    /**
      * 分页获取新闻列表.
      * @param index 从几开始
      * @param pageSize 查询条数
      * @return
      * @throws DxException  [参数说明]
      * @return ArrayList<NewsCornerModel> [返回类型说明]
      * @exception throws [违例类型] [违例说明]
      * @see [类、类#方法、类#成员]
     */
    ArrayList<NewsCornerModel> getPageNews(int index, int pageSize)
        throws DxException;
    
    /**
     * 
      *  根据新闻ID获取新闻信息
      * @return  newID[参数说明]
      * @return String [返回类型说明]
      * @exception throws [违例类型] [违例说明]
      * @see [类、类#方法、类#成员]
     */
    String getNewSingle(String newID)
        throws DxException;
    
    /** 
     * 获取主页广告广告
     * @param start 起始数目
     * @param take  获取总数
     * @return
     * @throws DxException
     * @see [类、类#方法、类#成员]
     */
    ArrayList<BannerModel> getPageBanners(int start, int take,String customerId)
        throws DxException;
    
    /**
      * 获取主页广告广告(添加缓存配置)
      * @param start 起始数目
      * @param take 获取总数
      * @param isLoadFromCache 是否缓存
      * @return
      * @throws DxException  [参数说明]
      * @return ArrayList<BannerModel> [返回类型说明]
      * @exception throws [违例类型] [违例说明]
      * @see [类、类#方法、类#成员]
      */
    ArrayList<BannerModel> getPageBanners(int start, int take, boolean isLoadFromCache,String customerId)
        throws DxException;
    
    /**
     * 获取单个Banner详情
     * @return
     * @throws DxException
     */
    BannerModel getBannerDetail(String bannerId,String cicid)throws DxException;
    
    /**
     * 根据广告ID获取该广告下的商品列表
     *   
     * @param bannerID
     * @return  [参数说明]
     * @return String [返回类型说明]
     * @exception throws [违例类型] [违例说明]
     * @see [类、类#方法、类#成员]
    */
    SearchModel getBannerProductsWhere(String bannerID, int StartIndex, int pageCount, String orderByField,
        double startPrice, double endPrice, double beginStar,String currencyCode,
        long customerID,boolean isFilter,String categoryIds)
        throws DxException;
    
    ProductResultModel GetProductBannerResualt(String bannerID, double startPrice, double endPrice, double beginStar,
    		long customerID,boolean isFilter,String categoryIds)
        throws DxException;
    
    /**
     * 
      *  根据一级目录ID获取此类别下的所有推广
      * @param categoryID
      * @return  [参数说明]
      * @return String [返回类型说明]
      * @exception throws [违例类型] [违例说明]
      * @see [类、类#方法、类#成员]
     */
    ArrayList<CBModel> getCategoryBanners(int categoryID)
        throws DxException;
    
    /**
     * 
      *  根据一级目录ID获取此类别下的所有推广商品
      * @param cbID
      * @return  [参数说明]
      * @return String [返回类型说明]
      * @exception throws [违例类型] [违例说明]
      * @see [类、类#方法、类#成员]
     */
    ArrayList<ProductModel> getCategoryBannerProductsWhere(String cbID, int StartIndex, int pageCount,
        String orderbyField, double startPrice, double endPrice, double beginStar)
        throws DxException;
    
    /**  
     * 根据分类推广ID获取产品数量
     * @param cbID
     * @param startPrice
     * @param endPrice
     * @param beginStar
     * @return
     * @throws DxException
     * @see [类、类#方法、类#成员]
     */
    ProductResultModel GetProductsCBResult(String cbID, double startPrice, double endPrice, double beginStar)
        throws DxException;
    
    /**
     * 
      *  获取今日消息
      * @return  [参数说明]
      * @return String [返回类型说明]
      * @exception throws [违例类型] [违例说明]
      * @see [类、类#方法、类#成员]
     */
    String getMessageDay()
        throws DxException;
    
    String[] GetStartImage(int width,int height,String lanuage)throws DxException; 
    
    /**
     * @创建：Tony 2016-6-3上午9:34:11
     * @描述：获取活动信息
     * @param getType －－3:消息
     * @param dataID
     * @return
     * @throws DxException
     */
    ActiveModel GetActiveInfor(int getType,String dataID)throws DxException;
}
